package com.ruoyi.web.controller.app;

import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;

import com.ruoyi.app.domain.AppImFriend;
import com.ruoyi.app.domain.bo.AppImFriendBo;
import com.ruoyi.app.domain.vo.AppImFriendVo;
import com.ruoyi.app.service.IAppImFriendService;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.data.repository.query.Param;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;

/**
 * 好友
 *
 * @author ruoyi
 * @date 2025-11-12
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/app/imFriend")
public class AppImFriendController extends BaseController {

    private final IAppImFriendService iAppImFriendService;

    /**
     * 设置好友额外数据 来源/标签
     * type 1:来源 2:标签
     * value 1:搜索 2:扫码 或者是标签 多个标签用-连接
     */
    @GetMapping("/setFriendExtra")
    public R<Void> setFriendExtra(@Param("type") Integer type,
                                  @Param("value") String value,
                                  @Param("userId") Long userId,
                                  @Param("friendUserId") Long friendUserId) {
        return iAppImFriendService.setFriendExtra(type,userId,friendUserId,value);
    }

    /**
       删除好友
     */
    @GetMapping("/delFriendExtra")
    public R<Void> delFriendExtra(@Param("userId") Long userId,
                                  @Param("friendUserId") Long friendUserId) {
        return iAppImFriendService.delFriendExtra(userId,friendUserId);
    }


    /**
     * 获取好友的来源 和标签信息
     */
    @GetMapping("/getFriendExtra")
    public R<AppImFriend> getFriendExtra(@Param("userId") Long userId,
                                         @Param("friendUserId") Long friendUserId) {
        return iAppImFriendService.getFriendExtra(userId,friendUserId);
    }



}
